package com.shlh.saas.entity.linkedin;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.Data;

import java.io.Serializable;

/**
 * LinkedIn用户ES实体类
 * 对应ES索引：ly_users
 */
@Data
public class LinkedInUserEs implements Serializable {

    /**
     * MySQL数据库记录ID
     */
    private String mId;

    /**
     * MySQL数据库表名
     */
    private String mt;

    /**
     * 公司名称（支持文本搜索）
     */
    private String companyName;

    /**
     * 职位标题（支持文本搜索）
     */
    private String jobTitle;

    /**
     * 地理位置（支持文本搜索）
     */
    private String location;

    /**
     * 公司行业（支持文本搜索）
     */
    private String companyIndustry;

    /**
     * LinkedIn个人资料链接
     */
    private String linkedinUrl;

    /**
     * 邮箱地址
     */
    private String emails;

    /**
     * 公司规模
     */
    private String companySize;

    /**
     * 工作经验年限
     */
    private String yearsExperience;

    /**
     * 全名（姓名）
     */
    private String fullName;

    /**
     * 名字
     */
    private String firstName;

    /**
     * 姓氏
     */
    private String lastName;

    /**
     * 手机号码
     */
    private String mobile;

    /**
     * 其他电话号码
     */
    private String phoneNumbers;

    /**
     * 公司网站
     */
    private String companyWebsite;

    /**
     * 公司成立时间
     */
    private String companyFounded;

    /**
     * Twitter用户名
     */
    private String twitterUserName;
    
    /**
     * Twitter链接
     */
    private String twitterUrl;

    /**
     * GitHub链接
     */
    private String githubUrl;

    /**
     * Facebook链接
     */
    private String facebookUrl;

    /**
     * 国家
     */
    private String country;

    /**
     * 城市
     */
    private String city;

    /**
     * 学历
     */
    private String education;

    /**
     * 技能
     */
    private String skills;

    /**
     * 联系方式类型（用于筛选）
     */
    private String contactMethod;

    // ==================== 查询参数字段 ====================

    /**
     * 导出限制数量
     */
    private Integer limit;

    /**
     * 排序字段
     */
    private String sortField;

    /**
     * 排序方向（asc/desc）
     */
    private String sortOrder;

    // ==================== 构造方法 ====================

    public LinkedInUserEs() {
        super();
    }


    // ==================== 便捷方法 ===============

    /**
     * 检查是否有公司名称筛选
     */
    public boolean hasCompanyName() {
        return companyName != null && !companyName.trim().isEmpty();
    }

    /**
     * 检查是否有职位筛选
     */
    public boolean hasJobTitle() {
        return jobTitle != null && !jobTitle.trim().isEmpty();
    }

    /**
     * 检查是否有行业筛选
     */
    public boolean hasIndustry() {
        return companyIndustry != null && !companyIndustry.trim().isEmpty();
    }

    /**
     * 检查是否有位置筛选
     */
    public boolean hasLocation() {
        return location != null && !location.trim().isEmpty();
    }

    /**
     * 检查是否有联系方式筛选
     */
    public boolean hasContactMethod() {
        return contactMethod != null && !contactMethod.trim().isEmpty();
    }

    /**
     * 检查是否有公司规模筛选
     */
    public boolean hasCompanySize() {
        return companySize != null && !companySize.trim().isEmpty();
    }

    @Override
    public String toString() {
        return "LinkedInUserEs{" +
                "mysqlId='" + mId + '\'' +
                ", mysqlTable='" + mt + '\'' +
                ", companyName='" + companyName + '\'' +
                ", jobTitle='" + jobTitle + '\'' +
                ", location='" + location + '\'' +
                ", companyIndustry='" + companyIndustry + '\'' +
                ", linkedinUrl='" + linkedinUrl + '\'' +
                ", emails='" + emails + '\'' +
                ", companySize='" + companySize + '\'' +
                ", yearsExperience='" + yearsExperience + '\'' +
                ", fullName='" + fullName + '\'' +
                '}';
    }
}
